home *** CD-ROM | disk | FTP | other *** search
Wrap
/* File: Movies.h Copyright: © 1991-1994 by Apple Computer, Inc., all rights reserved. */ #ifndef __MOVIES__ #define __MOVIES__ #ifndef __QUICKDRAW__ #include <Quickdraw.h> /* #include <Types.h> */ /* #include <ConditionalMacros.h> */ /* #include <MixedMode.h> */ /* #include <Traps.h> */ /* #include <QuickdrawText.h> */ /* #include <IntlResources.h> */ #endif #ifndef __ALIASES__ #include <Aliases.h> /* #include <AppleTalk.h> */ /* #include <OSUtils.h> */ /* #include <Files.h> */ /* #include <SegLoad.h> */ #endif #ifndef __EVENTS__ #include <Events.h> #endif #ifndef __TOOLUTILS__ #include <ToolUtils.h> /* #include <TextUtils.h> */ /* #include <Script.h> */ /* #include <FixMath.h> */ #endif #ifndef __MENUS__ #include <Menus.h> #endif #ifndef __COMPONENTS__ #include <Components.h> #endif #ifndef __IMAGECOMPRESSION__ #include <ImageCompression.h> /* #include <QDOffscreen.h> */ /* #include <StandardFile.h> */ /* #include <Dialogs.h> */ /* #include <Windows.h> */ /* #include <Controls.h> */ /* #include <TextEdit.h> */ #endif #ifndef kFix1 #define kFix1 (0x00010000) #endif #define MovieFileType 'MooV' #define MediaHandlerType 'mhlr' #define DataHandlerType 'dhlr' #define VideoMediaType 'vide' #define SoundMediaType 'soun' #define TextMediaType 'text' #define BaseMediaType 'gnrc' #define VisualMediaCharacteristic 'eyes' #define AudioMediaCharacteristic 'ears' #define DoTheRightThing 0L #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct MovieRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct MovieRecord MovieRecord; typedef MovieRecord *Movie; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct TrackRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct TrackRecord TrackRecord; typedef TrackRecord *Track; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct MediaRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct MediaRecord MediaRecord; typedef MediaRecord *Media; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct UserDataRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct UserDataRecord UserDataRecord; typedef UserDataRecord *UserData; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct TrackEditStateRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct TrackEditStateRecord TrackEditStateRecord; typedef TrackEditStateRecord *TrackEditState; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct MovieEditStateRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct MovieEditStateRecord MovieEditStateRecord; typedef MovieEditStateRecord *MovieEditState; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct SampleDescription { long descSize; long dataFormat; long resvd1; short resvd2; short dataRefIndex; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct SampleDescription SampleDescription; typedef SampleDescription *SampleDescriptionPtr, **SampleDescriptionHandle; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct SoundDescription { long descSize; long dataFormat; long resvd1; short resvd2; short dataRefIndex; short version; short revlevel; long vendor; short numChannels; short sampleSize; short compressionID; short packetSize; Fixed sampleRate; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct SoundDescription SoundDescription; typedef SoundDescription *SoundDescriptionPtr, **SoundDescriptionHandle; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct TextDescription { long size; long type; long resvd1; short resvd2; short dataRefIndex; long displayFlags; long textJustification; RGBColor bgColor; Rect defaultTextBox; ScrpSTElement defaultStyle; char defaultFontName[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct TextDescription TextDescription; typedef TextDescription *TextDescriptionPtr, **TextDescriptionHandle; enum { dfDontDisplay = 1 << 0, dfDontAutoScale = 1 << 1, dfClipToTextBox = 1 << 2, dfUseMovieBGColor = 1 << 3, dfShrinkTextBoxToFit = 1 << 4, dfScrollIn = 1 << 5, dfScrollOut = 1 << 6, dfHorizScroll = 1 << 7, dfReverseScroll = 1 << 8, dfContinuousScroll = 1 << 9, dfFlowHoriz = 1 << 10, dfDropShadow = 1 << 12, dfAntiAlias = 1 << 13, dfKeyedText = 1 << 14, dfInverseHilite = 1 << 15 }; enum { searchTextDontGoToFoundTime = 1L << 16, searchTextDontHiliteFoundText = 1L << 17, searchTextOneTrackOnly = 1L << 18, searchTextEnabledTracksOnly = 1L << 19 }; enum { movieProgressOpen = 0, movieProgressUpdatePercent = 1, movieProgressClose = 2 }; enum { progressOpFlatten = 1, progressOpInsertTrackSegment, progressOpInsertMovieSegment, progressOpPaste, progressOpAddMovieSelection, progressOpCopy, progressOpCut, progressOpLoadMovieIntoRam, progressOpLoadTrackIntoRam, progressOpLoadMediaIntoRam, progressOpImportMovie, progressOpExportMovie }; enum { mediaQualityDraft = 0x0000, mediaQualityNormal = 0x0040, mediaQualityBetter = 0x0080, mediaQualityBest = 0x00C0 }; typedef pascal OSErr (*MovieRgnCoverProcPtr)(Movie theMovie, RgnHandle changedRgn, long refcon); enum { uppMovieRgnCoverProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(RgnHandle))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MovieRgnCoverUPP; #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon)) #define NewMovieRgnCoverProc(userRoutine) \ (MovieRgnCoverUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentISA()) #else typedef MovieRgnCoverProcPtr MovieRgnCoverUPP; #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon) \ (*(userRoutine))((theMovie), (changedRgn), (refcon)) #define NewMovieRgnCoverProc(userRoutine) \ (MovieRgnCoverUPP)(userRoutine) #endif typedef pascal OSErr (*MovieProgressProcPtr)(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon); enum { uppMovieProgressProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short))) | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Fixed))) | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MovieProgressUPP; #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon)) #define NewMovieProgressProc(userRoutine) \ (MovieProgressUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentISA()) #else typedef MovieProgressProcPtr MovieProgressUPP; #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon) \ (*(userRoutine))((theMovie), (message), (whatOperation), (percentDone), (refcon)) #define NewMovieProgressProc(userRoutine) \ (MovieProgressUPP)(userRoutine) #endif typedef pascal OSErr (*MovieDrawingCompleteProcPtr)(Movie theMovie, long refCon); enum { uppMovieDrawingCompleteProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MovieDrawingCompleteUPP; #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon)) #define NewMovieDrawingCompleteProc(userRoutine) \ (MovieDrawingCompleteUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentISA()) #else typedef MovieDrawingCompleteProcPtr MovieDrawingCompleteUPP; #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon) \ (*(userRoutine))((theMovie), (refCon)) #define NewMovieDrawingCompleteProc(userRoutine) \ (MovieDrawingCompleteUPP)(userRoutine) #endif typedef pascal OSErr (*TrackTransferProcPtr)(Track t, long refCon); enum { uppTrackTransferProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Track))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr TrackTransferUPP; #define CallTrackTransferProc(userRoutine, t, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppTrackTransferProcInfo, (t), (refCon)) #define NewTrackTransferProc(userRoutine) \ (TrackTransferUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentISA()) #else typedef TrackTransferProcPtr TrackTransferUPP; #define CallTrackTransferProc(userRoutine, t, refCon) \ (*(userRoutine))((t), (refCon)) #define NewTrackTransferProc(userRoutine) \ (TrackTransferUPP)(userRoutine) #endif typedef pascal OSErr (*GetMovieProcPtr)(long offset, long size, void *dataPtr, void *refCon); enum { uppGetMovieProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))) | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr GetMovieUPP; #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon)) #define NewGetMovieProc(userRoutine) \ (GetMovieUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentISA()) #else typedef GetMovieProcPtr GetMovieUPP; #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon) \ (*(userRoutine))((offset), (size), (dataPtr), (refCon)) #define NewGetMovieProc(userRoutine) \ (GetMovieUPP)(userRoutine) #endif typedef ComponentInstance MediaHandler, DataHandler; typedef Component MediaHandlerComponent, DataHandlerComponent; typedef ComponentResult HandlerError; #ifndef kSmallestArray #define kSmallestArray 1 #endif typedef long TimeValue; typedef long TimeScale; typedef Int64Bit CompTimeValue; enum { loopTimeBase = 1, palindromeLoopTimeBase = 2, maintainTimeBaseZero = 4 }; typedef unsigned long TimeBaseFlags; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct TimeBaseRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct TimeBaseRecord TimeBaseRecord; typedef TimeBaseRecord *TimeBase; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct CallBackRecord { long data[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct CallBackRecord CallBackRecord; typedef CallBackRecord *QTCallBack; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct TimeRecord { CompTimeValue value; TimeScale scale; TimeBase base; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct TimeRecord TimeRecord; enum { triggerTimeFwd = 0x0001, triggerTimeBwd = 0x0002, triggerTimeEither = 0x0003, triggerRateLT = 0x0004, triggerRateGT = 0x0008, triggerRateEqual = 0x0010, triggerRateLTE = triggerRateLT|triggerRateEqual, triggerRateGTE = triggerRateGT|triggerRateEqual, triggerRateNotEqual = triggerRateGT|triggerRateEqual|triggerRateLT, triggerRateChange = 0, triggerAtStart = 0x0001, triggerAtStop = 0x0002 }; typedef unsigned short QTCallBackFlags; enum { timeBaseBeforeStartTime = 1, timeBaseAfterStopTime = 2 }; typedef unsigned long TimeBaseStatus; enum { callBackAtTime = 1, callBackAtRate = 2, callBackAtTimeJump = 3, callBackAtExtremes = 4, callBackAtInterrupt = 0x8000, callBackAtDeferredTask = 0x4000 }; typedef unsigned short QTCallBackType; typedef pascal void (*QTCallBackProcPtr)(QTCallBack cb, long refCon); enum { uppQTCallBackProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QTCallBack))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr QTCallBackUPP; #define CallQTCallBackProc(userRoutine, cb, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppQTCallBackProcInfo, (cb), (refCon)) #define NewQTCallBackProc(userRoutine) \ (QTCallBackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentISA()) #else typedef QTCallBackProcPtr QTCallBackUPP; #define CallQTCallBackProc(userRoutine, cb, refCon) \ (*(userRoutine))((cb), (refCon)) #define NewQTCallBackProc(userRoutine) \ (QTCallBackUPP)(userRoutine) #endif enum { qtcbNeedsRateChanges = 1, qtcbNeedsTimeChanges = 2, qtcbNeedsStartStopChanges = 4 }; #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct QTCallBackHeader { long callBackFlags; long reserved1; char qtPrivate[40]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct QTCallBackHeader QTCallBackHeader; typedef pascal void (*QTSyncTaskProcPtr)(void *task); enum { uppQTSyncTaskProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr QTSyncTaskUPP; #define CallQTSyncTaskProc(userRoutine, task) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppQTSyncTaskProcInfo, (task)) #define NewQTSyncTaskProc(userRoutine) \ (QTSyncTaskUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentISA()) #else typedef QTSyncTaskProcPtr QTSyncTaskUPP; #define CallQTSyncTaskProc(userRoutine, task) \ (*(userRoutine))((task)) #define NewQTSyncTaskProc(userRoutine) \ (QTSyncTaskUPP)(userRoutine) #endif #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct QTSyncTaskRecord { void *qLink; QTSyncTaskUPP proc; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct QTSyncTaskRecord QTSyncTaskRecord; typedef QTSyncTaskRecord *QTSyncTaskPtr; enum { keepInRam = 1 << 0, unkeepInRam = 1 << 1, flushFromRam = 1 << 2, loadForwardTrackEdits = 1 << 3, loadBackwardTrackEdits = 1 << 4 }; typedef pascal Boolean (*MoviePreviewCallOutProcPtr)(long refcon); enum { uppMoviePreviewCallOutProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MoviePreviewCallOutUPP; #define CallMoviePreviewCallOutProc(userRoutine, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, (refcon)) #define NewMoviePreviewCallOutProc(userRoutine) \ (MoviePreviewCallOutUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentISA()) #else typedef MoviePreviewCallOutProcPtr MoviePreviewCallOutUPP; #define CallMoviePreviewCallOutProc(userRoutine, refcon) \ (*(userRoutine))((refcon)) #define NewMoviePreviewCallOutProc(userRoutine) \ (MoviePreviewCallOutUPP)(userRoutine) #endif enum { newMovieActive = 1 << 0, newMovieDontResolveDataRefs = 1 << 1, newMovieDontAskUnresolvedDataRefs = 1 << 2, newMovieDontAutoAlternates = 1 << 3 }; enum { trackUsageInMovie = 1 << 1, trackUsageInPreview = 1 << 2, trackUsageInPoster = 1 << 3 }; enum { mediaSampleNotSync = 1 << 0, mediaSampleShadowSync = 1 << 1 }; enum { pasteInParallel = 1, showUserSettingsDialog = 2, movieToFileOnlyExport = 4 }; enum { nextTimeMediaSample = 1 << 0, nextTimeMediaEdit = 1 << 1, nextTimeTrackEdit = 1 << 2, nextTimeSyncSample = 1 << 3, nextTimeEdgeOK = 1 << 14, nextTimeIgnoreActiveSegment = 1 << 15 }; typedef unsigned short nextTimeFlagsEnum; enum { createMovieFileDeleteCurFile = 1L << 31, createMovieFileDontCreateMovie = 1L << 30, createMovieFileDontOpenFile = 1L << 29 }; typedef unsigned long createMovieFileFlagsEnum; enum { flattenAddMovieToDataFork = 1L << 0, flattenActiveTracksOnly = 1L << 2, flattenDontInterleaveFlatten = 1L << 3 }; typedef unsigned long movieFlattenFlagsEnum; enum { movieInDataForkResID = -1 }; enum { mcTopLeftMovie = 1 << 0, mcScaleMovieToFit = 1 << 1, mcWithBadge = 1 << 2, mcNotVisible = 1 << 3, mcWithFrame = 1 << 4 }; enum { movieScrapDontZeroScrap = 1 << 0, movieScrapOnlyPutMovie = 1 << 1 }; enum { dataRefSelfReference = 1 << 0, dataRefWasNotResolved = 1 << 1 }; typedef unsigned long dataRefAttributesFlags; enum { hintsScrubMode = 1 << 0, hintsLoop = 1 << 1, hintsDontPurge = 1 << 2, hintsUseScreenBuffer = 1 << 5, hintsAllowInterlace = 1 << 6, hintsUseSoundInterp = 1 << 7, hintsHighQuality = 1 << 8, hintsPalindrome = 1 << 9, hintsInactive = 1 << 11 }; typedef unsigned long playHintsEnum; enum { mediaHandlerFlagBaseClient = 1 }; typedef unsigned long mediaHandlerFlagsEnum; enum { movieTrackMediaType = 1 << 0, movieTrackCharacteristic = 1 << 1, movieTrackEnabledOnly = 1 << 2 }; #ifdef __cplusplus extern "C" { #endif extern pascal OSErr EnterMovies(void) TWOWORDINLINE(0x7001, 0xAAAA); extern pascal void ExitMovies(void) TWOWORDINLINE(0x7002, 0xAAAA); typedef pascal void (*MoviesErrorProcPtr)(OSErr theErr, long refcon); enum { uppMoviesErrorProcInfo = kPascalStackBased | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MoviesErrorUPP; #define CallMoviesErrorProc(userRoutine, theErr, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviesErrorProcInfo, (theErr), (refcon)) #define NewMoviesErrorProc(userRoutine) \ (MoviesErrorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentISA()) #else typedef MoviesErrorProcPtr MoviesErrorUPP; #define CallMoviesErrorProc(userRoutine, theErr, refcon) \ (*(userRoutine))((theErr), (refcon)) #define NewMoviesErrorProc(userRoutine) \ (MoviesErrorUPP)(userRoutine) #endif extern pascal OSErr GetMoviesError(void) TWOWORDINLINE(0x7003, 0xAAAA); extern pascal void ClearMoviesStickyError(void) THREEWORDINLINE(0x303C, 0xDE, 0xAAAA); extern pascal OSErr GetMoviesStickyError(void) TWOWORDINLINE(0x7004, 0xAAAA); extern pascal void SetMoviesErrorProc(MoviesErrorUPP errProc, long refcon) THREEWORDINLINE(0x303C, 0xEF, 0xAAAA); extern pascal void MoviesTask(Movie theMovie, long maxMilliSecToUse) TWOWORDINLINE(0x7005, 0xAAAA); extern pascal OSErr PrerollMovie(Movie theMovie, TimeValue time, Fixed Rate) TWOWORDINLINE(0x7006, 0xAAAA); extern pascal OSErr LoadMovieIntoRam(Movie theMovie, TimeValue time, TimeValue duration, long flags) TWOWORDINLINE(0x7007, 0xAAAA); extern pascal OSErr LoadTrackIntoRam(Track theTrack, TimeValue time, TimeValue duration, long flags) THREEWORDINLINE(0x303C, 0x16E, 0xAAAA); extern pascal OSErr LoadMediaIntoRam(Media theMedia, TimeValue time, TimeValue duration, long flags) TWOWORDINLINE(0x7008, 0xAAAA); extern pascal void SetMovieActive(Movie theMovie, Boolean active) TWOWORDINLINE(0x7009, 0xAAAA); extern pascal Boolean GetMovieActive(Movie theMovie) TWOWORDINLINE(0x700A, 0xAAAA); extern pascal void StartMovie(Movie theMovie) TWOWORDINLINE(0x700B, 0xAAAA); extern pascal void StopMovie(Movie theMovie) TWOWORDINLINE(0x700C, 0xAAAA); extern pascal void GoToBeginningOfMovie(Movie theMovie) TWOWORDINLINE(0x700D, 0xAAAA); extern pascal void GoToEndOfMovie(Movie theMovie) TWOWORDINLINE(0x700E, 0xAAAA); extern pascal Boolean IsMovieDone(Movie theMovie) THREEWORDINLINE(0x303C, 0xDD, 0xAAAA); extern pascal Boolean GetMoviePreviewMode(Movie theMovie) TWOWORDINLINE(0x700F, 0xAAAA); extern pascal void SetMoviePreviewMode(Movie theMovie, Boolean usePreview) TWOWORDINLINE(0x7010, 0xAAAA); extern pascal void ShowMoviePoster(Movie theMovie) TWOWORDINLINE(0x7011, 0xAAAA); extern pascal void PlayMoviePreview(Movie theMovie, MoviePreviewCallOutUPP callOutProc, long refcon) THREEWORDINLINE(0x303C, 0xF2, 0xAAAA); extern pascal TimeBase GetMovieTimeBase(Movie theMovie) TWOWORDINLINE(0x7012, 0xAAAA); extern pascal void SetMovieMasterTimeBase(Movie theMovie, TimeBase tb, const TimeRecord *slaveZero) THREEWORDINLINE(0x303C, 0x167, 0xAAAA); extern pascal void SetMovieMasterClock(Movie theMovie, Component clockMeister, const TimeRecord *slaveZero) THREEWORDINLINE(0x303C, 0x168, 0xAAAA); extern pascal void GetMovieGWorld(Movie theMovie, CGrafPtr *port, GDHandle *gdh) TWOWORDINLINE(0x7015, 0xAAAA); extern pascal void SetMovieGWorld(Movie theMovie, CGrafPtr port, GDHandle gdh) TWOWORDINLINE(0x7016, 0xAAAA); enum { movieDrawingCallWhenChanged = 0, movieDrawingCallAlways = 1 }; extern pascal void SetMovieDrawingCompleteProc(Movie theMovie, long flags, MovieDrawingCompleteUPP proc, long refCon) THREEWORDINLINE(0x303C, 0x1DE, 0xAAAA); extern pascal Track GetNextTrackForCompositing(Movie theMovie, Track theTrack) THREEWORDINLINE(0x303C, 0x1FA, 0xAAAA); extern pascal Track GetPrevTrackForCompositing(Movie theMovie, Track theTrack) THREEWORDINLINE(0x303C, 0x1FB, 0xAAAA); extern pascal void SetTrackGWorld(Track theTrack, CGrafPtr port, GDHandle gdh, TrackTransferUPP proc, long refCon) THREEWORDINLINE(0x303C, 0x9D, 0xAAAA); extern pascal PicHandle GetMoviePict(Movie theMovie, TimeValue time) TWOWORDINLINE(0x701D, 0xAAAA); extern pascal PicHandle GetTrackPict(Track theTrack, TimeValue time) TWOWORDINLINE(0x701E, 0xAAAA); extern pascal PicHandle GetMoviePosterPict(Movie theMovie) THREEWORDINLINE(0x303C, 0xF7, 0xAAAA); extern pascal OSErr UpdateMovie(Movie theMovie) TWOWORDINLINE(0x701F, 0xAAAA); extern pascal void GetMovieBox(Movie theMovie, Rect *boxRect) THREEWORDINLINE(0x303C, 0xF9, 0xAAAA); extern pascal void SetMovieBox(Movie theMovie, const Rect *boxRect) THREEWORDINLINE(0x303C, 0xFA, 0xAAAA); extern pascal RgnHandle GetMovieDisplayClipRgn(Movie theMovie) THREEWORDINLINE(0x303C, 0xFC, 0xAAAA); extern pascal void SetMovieDisplayClipRgn(Movie theMovie, RgnHandle theClip) THREEWORDINLINE(0x303C, 0xFD, 0xAAAA); extern pascal RgnHandle GetMovieClipRgn(Movie theMovie) THREEWORDINLINE(0x303C, 0x100, 0xAAAA); extern pascal void SetMovieClipRgn(Movie theMovie, RgnHandle theClip) THREEWORDINLINE(0x303C, 0x101, 0xAAAA); extern pascal RgnHandle GetTrackClipRgn(Track theTrack) THREEWORDINLINE(0x303C, 0x102, 0xAAAA); extern pascal void SetTrackClipRgn(Track theTrack, RgnHandle theClip) THREEWORDINLINE(0x303C, 0x103, 0xAAAA); extern pascal RgnHandle GetMovieDisplayBoundsRgn(Movie theMovie) THREEWORDINLINE(0x303C, 0xFB, 0xAAAA); extern pascal RgnHandle GetTrackDisplayBoundsRgn(Track theTrack) THREEWORDINLINE(0x303C, 0x112, 0xAAAA); extern pascal RgnHandle GetMovieBoundsRgn(Movie theMovie) THREEWORDINLINE(0x303C, 0xFE, 0xAAAA); extern pascal RgnHandle GetTrackMovieBoundsRgn(Track theTrack) THREEWORDINLINE(0x303C, 0xFF, 0xAAAA); extern pascal RgnHandle GetTrackBoundsRgn(Track theTrack) THREEWORDINLINE(0x303C, 0x111, 0xAAAA); extern pascal PixMapHandle GetTrackMatte(Track theTrack) THREEWORDINLINE(0x303C, 0x115, 0xAAAA); extern pascal void SetTrackMatte(Track theTrack, PixMapHandle theMatte) THREEWORDINLINE(0x303C, 0x116, 0xAAAA); extern pascal void DisposeMatte(PixMapHandle theMatte) THREEWORDINLINE(0x303C, 0x14A, 0xAAAA); extern pascal Movie NewMovie(long flags) THREEWORDINLINE(0x303C, 0x187, 0xAAAA); extern pascal OSErr PutMovieIntoHandle(Movie theMovie, Handle publicMovie) TWOWORDINLINE(0x7022, 0xAAAA); extern pascal OSErr PutMovieIntoDataFork(Movie theMovie, short fRefNum, long offset, long maxSize) THREEWORDINLINE(0x303C, 0x1B4, 0xAAAA); extern pascal void DisposeMovie(Movie theMovie) TWOWORDINLINE(0x7023, 0xAAAA); extern pascal unsigned long GetMovieCreationTime(Movie theMovie) TWOWORDINLINE(0x7026, 0xAAAA); extern pascal unsigned long GetMovieModificationTime(Movie theMovie) TWOWORDINLINE(0x7027, 0xAAAA); extern pascal TimeScale GetMovieTimeScale(Movie theMovie) TWOWORDINLINE(0x7029, 0xAAAA); extern pascal void SetMovieTimeScale(Movie theMovie, TimeScale timeScale) TWOWORDINLINE(0x702A, 0xAAAA); extern pascal TimeValue GetMovieDuration(Movie theMovie) TWOWORDINLINE(0x702B, 0xAAAA); extern pascal Fixed GetMovieRate(Movie theMovie) TWOWORDINLINE(0x702C, 0xAAAA); extern pascal void SetMovieRate(Movie theMovie, Fixed rate) TWOWORDINLINE(0x702D, 0xAAAA); extern pascal Fixed GetMoviePreferredRate(Movie theMovie) THREEWORDINLINE(0x303C, 0xF3, 0xAAAA); extern pascal void SetMoviePreferredRate(Movie theMovie, Fixed rate) THREEWORDINLINE(0x303C, 0xF4, 0xAAAA); extern pascal short GetMoviePreferredVolume(Movie theMovie) THREEWORDINLINE(0x303C, 0xF5, 0xAAAA); extern pascal void SetMoviePreferredVolume(Movie theMovie, short volume) THREEWORDINLINE(0x303C, 0xF6, 0xAAAA); extern pascal short GetMovieVolume(Movie theMovie) TWOWORDINLINE(0x702E, 0xAAAA); extern pascal void SetMovieVolume(Movie theMovie, short volume) TWOWORDINLINE(0x702F, 0xAAAA); extern pascal void GetMovieMatrix(Movie theMovie, MatrixRecord *matrix) TWOWORDINLINE(0x7031, 0xAAAA); extern pascal void SetMovieMatrix(Movie theMovie, const MatrixRecord *matrix) TWOWORDINLINE(0x7032, 0xAAAA); extern pascal void GetMoviePreviewTime(Movie theMovie, TimeValue *previewTime, TimeValue *previewDuration) TWOWORDINLINE(0x7033, 0xAAAA); extern pascal void SetMoviePreviewTime(Movie theMovie, TimeValue previewTime, TimeValue previewDuration) TWOWORDINLINE(0x7034, 0xAAAA); extern pascal TimeValue GetMoviePosterTime(Movie theMovie) TWOWORDINLINE(0x7035, 0xAAAA); extern pascal void SetMoviePosterTime(Movie theMovie, TimeValue posterTime) TWOWORDINLINE(0x7036, 0xAAAA); extern pascal void GetMovieSelection(Movie theMovie, TimeValue *selectionTime, TimeValue *selectionDuration) TWOWORDINLINE(0x7037, 0xAAAA); extern pascal void SetMovieSelection(Movie theMovie, TimeValue selectionTime, TimeValue selectionDuration) TWOWORDINLINE(0x7038, 0xAAAA); extern pascal void SetMovieActiveSegment(Movie theMovie, TimeValue startTime, TimeValue duration) THREEWORDINLINE(0x303C, 0x15C, 0xAAAA); extern pascal void GetMovieActiveSegment(Movie theMovie, TimeValue *startTime, TimeValue *duration) THREEWORDINLINE(0x303C, 0x15D, 0xAAAA); extern pascal TimeValue GetMovieTime(Movie theMovie, TimeRecord *currentTime) TWOWORDINLINE(0x7039, 0xAAAA); extern pascal void SetMovieTime(Movie theMovie, const TimeRecord *newtime) TWOWORDINLINE(0x703C, 0xAAAA); extern pascal void SetMovieTimeValue(Movie theMovie, TimeValue newtime) TWOWORDINLINE(0x703D, 0xAAAA); extern pascal UserData GetMovieUserData(Movie theMovie) TWOWORDINLINE(0x703E, 0xAAAA); extern pascal long GetMovieTrackCount(Movie theMovie) TWOWORDINLINE(0x703F, 0xAAAA); extern pascal Track GetMovieTrack(Movie theMovie, long trackID) TWOWORDINLINE(0x7040, 0xAAAA); extern pascal Track GetMovieIndTrack(Movie theMovie, long index) THREEWORDINLINE(0x303C, 0x117, 0xAAAA); extern pascal Track GetMovieIndTrackType(Movie theMovie, long index, OSType trackType, long flags) THREEWORDINLINE(0x303C, 0x208, 0xAAAA); extern pascal long GetTrackID(Track theTrack) THREEWORDINLINE(0x303C, 0x127, 0xAAAA); extern pascal Movie GetTrackMovie(Track theTrack) THREEWORDINLINE(0x303C, 0xD0, 0xAAAA); extern pascal Track NewMovieTrack(Movie theMovie, Fixed width, Fixed height, short trackVolume) THREEWORDINLINE(0x303C, 0x188, 0xAAAA); extern pascal void DisposeMovieTrack(Track theTrack) TWOWORDINLINE(0x7042, 0xAAAA); extern pascal unsigned long GetTrackCreationTime(Track theTrack) TWOWORDINLINE(0x7043, 0xAAAA); extern pascal unsigned long GetTrackModificationTime(Track theTrack) TWOWORDINLINE(0x7044, 0xAAAA); extern pascal Boolean GetTrackEnabled(Track theTrack) TWOWORDINLINE(0x7045, 0xAAAA); extern pascal void SetTrackEnabled(Track theTrack, Boolean isEnabled) TWOWORDINLINE(0x7046, 0xAAAA); extern pascal long GetTrackUsage(Track theTrack) TWOWORDINLINE(0x7047, 0xAAAA); extern pascal void SetTrackUsage(Track theTrack, long usage) TWOWORDINLINE(0x7048, 0xAAAA); extern pascal TimeValue GetTrackDuration(Track theTrack) TWOWORDINLINE(0x704B, 0xAAAA); extern pascal TimeValue GetTrackOffset(Track theTrack) TWOWORDINLINE(0x704C, 0xAAAA); extern pascal void SetTrackOffset(Track theTrack, TimeValue movieOffsetTime) TWOWORDINLINE(0x704D, 0xAAAA); extern pascal short GetTrackLayer(Track theTrack) TWOWORDINLINE(0x7050, 0xAAAA); extern pascal void SetTrackLayer(Track theTrack, short layer) TWOWORDINLINE(0x7051, 0xAAAA); extern pascal Track GetTrackAlternate(Track theTrack) TWOWORDINLINE(0x7052, 0xAAAA); extern pascal void SetTrackAlternate(Track theTrack, Track alternateT) TWOWORDINLINE(0x7053, 0xAAAA); extern pascal void SetAutoTrackAlternatesEnabled(Movie theMovie, Boolean enable) THREEWORDINLINE(0x303C, 0x15E, 0xAAAA); extern pascal void SelectMovieAlternates(Movie theMovie) THREEWORDINLINE(0x303C, 0x15F, 0xAAAA); extern pascal short GetTrackVolume(Track theTrack) TWOWORDINLINE(0x7054, 0xAAAA); extern pascal void SetTrackVolume(Track theTrack, short volume) TWOWORDINLINE(0x7055, 0xAAAA); extern pascal void GetTrackMatrix(Track theTrack, MatrixRecord *matrix) TWOWORDINLINE(0x7056, 0xAAAA); extern pascal void SetTrackMatrix(Track theTrack, const MatrixRecord *matrix) TWOWORDINLINE(0x7057, 0xAAAA); extern pascal void GetTrackDimensions(Track theTrack, Fixed *width, Fixed *height) TWOWORDINLINE(0x705D, 0xAAAA); extern pascal void SetTrackDimensions(Track theTrack, Fixed width, Fixed height) TWOWORDINLINE(0x705E, 0xAAAA); extern pascal UserData GetTrackUserData(Track theTrack) TWOWORDINLINE(0x705F, 0xAAAA); extern pascal Media NewTrackMedia(Track theTrack, OSType mediaType, TimeScale timeScale, Handle dataRef, OSType dataRefType) THREEWORDINLINE(0x303C, 0x18E, 0xAAAA); extern pascal void DisposeTrackMedia(Media theMedia) TWOWORDINLINE(0x7061, 0xAAAA); extern pascal Media GetTrackMedia(Track theTrack) TWOWORDINLINE(0x7062, 0xAAAA); extern pascal Track GetMediaTrack(Media theMedia) THREEWORDINLINE(0x303C, 0xC5, 0xAAAA); extern pascal unsigned long GetMediaCreationTime(Media theMedia) TWOWORDINLINE(0x7066, 0xAAAA); extern pascal unsigned long GetMediaModificationTime(Media theMedia) TWOWORDINLINE(0x7067, 0xAAAA); extern pascal TimeScale GetMediaTimeScale(Media theMedia) TWOWORDINLINE(0x7068, 0xAAAA); extern pascal void SetMediaTimeScale(Media theMedia, TimeScale timeScale) TWOWORDINLINE(0x7069, 0xAAAA); extern pascal TimeValue GetMediaDuration(Media theMedia) TWOWORDINLINE(0x706A, 0xAAAA); extern pascal short GetMediaLanguage(Media theMedia) TWOWORDINLINE(0x706B, 0xAAAA); extern pascal void SetMediaLanguage(Media theMedia, short language) TWOWORDINLINE(0x706C, 0xAAAA); extern pascal short GetMediaQuality(Media theMedia) TWOWORDINLINE(0x706D, 0xAAAA); extern pascal void SetMediaQuality(Media theMedia, short quality) TWOWORDINLINE(0x706E, 0xAAAA); extern pascal void GetMediaHandlerDescription(Media theMedia, OSType *mediaType, Str255 creatorName, OSType *creatorManufacturer) TWOWORDINLINE(0x706F, 0xAAAA); extern pascal UserData GetMediaUserData(Media theMedia) TWOWORDINLINE(0x7070, 0xAAAA); extern pascal MediaHandler GetMediaHandler(Media theMedia) TWOWORDINLINE(0x7071, 0xAAAA); extern pascal OSErr SetMediaHandler(Media theMedia, MediaHandlerComponent mH) THREEWORDINLINE(0x303C, 0x190, 0xAAAA); extern pascal OSErr BeginMediaEdits(Media theMedia) TWOWORDINLINE(0x7072, 0xAAAA); extern pascal OSErr EndMediaEdits(Media theMedia) TWOWORDINLINE(0x7073, 0xAAAA); extern pascal OSErr SetMediaDefaultDataRefIndex(Media theMedia, short index) THREEWORDINLINE(0x303C, 0x1E0, 0xAAAA); extern pascal void GetMediaDataHandlerDescription(Media theMedia, short index, OSType *dhType, Str255 creatorName, OSType *creatorManufacturer) THREEWORDINLINE(0x303C, 0x19E, 0xAAAA); extern pascal DataHandler GetMediaDataHandler(Media theMedia, short index) THREEWORDINLINE(0x303C, 0x19F, 0xAAAA); extern pascal OSErr SetMediaDataHandler(Media theMedia, short index, DataHandlerComponent dataHandler) THREEWORDINLINE(0x303C, 0x1A0, 0xAAAA); extern pascal Component GetDataHandler(Handle dataRef, OSType dataHandlerSubType, long flags) THREEWORDINLINE(0x303C, 0x1ED, 0xAAAA); extern pascal long GetMediaSampleDescriptionCount(Media theMedia) TWOWORDINLINE(0x7077, 0xAAAA); extern pascal void GetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH) TWOWORDINLINE(0x7078, 0xAAAA); extern pascal OSErr SetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH) THREEWORDINLINE(0x303C, 0x1D0, 0xAAAA); extern pascal long GetMediaSampleCount(Media theMedia) TWOWORDINLINE(0x7079, 0xAAAA); extern pascal void SampleNumToMediaTime(Media theMedia, long logicalSampleNum, TimeValue *sampleTime, TimeValue *sampleDuration) TWOWORDINLINE(0x707A, 0xAAAA); extern pascal void MediaTimeToSampleNum(Media theMedia, TimeValue time, long *sampleNum, TimeValue *sampleTime, TimeValue *sampleDuration) TWOWORDINLINE(0x707B, 0xAAAA); extern pascal OSErr AddMediaSample(Media theMedia, Handle dataIn, long inOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime) TWOWORDINLINE(0x707C, 0xAAAA); #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct SampleReferenceRecord { long dataOffset; long dataSize; TimeValue durationPerSample; long numberOfSamples; short sampleFlags; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct SampleReferenceRecord SampleReferenceRecord; typedef SampleReferenceRecord *SampleReferencePtr; extern pascal OSErr AddMediaSampleReference(Media theMedia, long dataOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime) TWOWORDINLINE(0x707D, 0xAAAA); extern pascal OSErr AddMediaSampleReferences(Media theMedia, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, SampleReferencePtr sampleRefs, TimeValue *sampleTime) THREEWORDINLINE(0x303C, 0x1F7, 0xAAAA); extern pascal OSErr GetMediaSample(Media theMedia, Handle dataOut, long maxSizeToGrow, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags) TWOWORDINLINE(0x707E, 0xAAAA); extern pascal OSErr GetMediaSampleReference(Media theMedia, long *dataOffset, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags) TWOWORDINLINE(0x707F, 0xAAAA); extern pascal OSErr SetMediaPreferredChunkSize(Media theMedia, long maxChunkSize) THREEWORDINLINE(0x303C, 0x1F8, 0xAAAA); extern pascal OSErr GetMediaPreferredChunkSize(Media theMedia, long *maxChunkSize) THREEWORDINLINE(0x303C, 0x1F9, 0xAAAA); extern pascal OSErr SetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long syncSampleNum) THREEWORDINLINE(0x303C, 0x121, 0xAAAA); extern pascal OSErr GetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long *syncSampleNum) THREEWORDINLINE(0x303C, 0x122, 0xAAAA); extern pascal OSErr InsertMediaIntoTrack(Track theTrack, TimeValue trackStart, TimeValue mediaTime, TimeValue mediaDuration, Fixed mediaRate) THREEWORDINLINE(0x303C, 0x183, 0xAAAA); extern pascal OSErr InsertTrackSegment(Track srcTrack, Track dstTrack, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn) THREEWORDINLINE(0x303C, 0x85, 0xAAAA); extern pascal OSErr InsertMovieSegment(Movie srcMovie, Movie dstMovie, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn) THREEWORDINLINE(0x303C, 0x86, 0xAAAA); extern pascal OSErr InsertEmptyTrackSegment(Track dstTrack, TimeValue dstIn, TimeValue dstDuration) THREEWORDINLINE(0x303C, 0x87, 0xAAAA); extern pascal OSErr InsertEmptyMovieSegment(Movie dstMovie, TimeValue dstIn, TimeValue dstDuration) THREEWORDINLINE(0x303C, 0x88, 0xAAAA); extern pascal OSErr DeleteTrackSegment(Track theTrack, TimeValue in, TimeValue duration) THREEWORDINLINE(0x303C, 0x89, 0xAAAA); extern pascal OSErr DeleteMovieSegment(Movie theMovie, TimeValue in, TimeValue duration) THREEWORDINLINE(0x303C, 0x8A, 0xAAAA); extern pascal OSErr ScaleTrackSegment(Track theTrack, TimeValue in, TimeValue oldDuration, TimeValue newDuration) THREEWORDINLINE(0x303C, 0x8B, 0xAAAA); extern pascal OSErr ScaleMovieSegment(Movie theMovie, TimeValue in, TimeValue oldDuration, TimeValue newDuration) THREEWORDINLINE(0x303C, 0x8C, 0xAAAA); extern pascal Movie CutMovieSelection(Movie theMovie) THREEWORDINLINE(0x303C, 0x8D, 0xAAAA); extern pascal Movie CopyMovieSelection(Movie theMovie) THREEWORDINLINE(0x303C, 0x8E, 0xAAAA); extern pascal void PasteMovieSelection(Movie theMovie, Movie src) THREEWORDINLINE(0x303C, 0x8F, 0xAAAA); extern pascal void AddMovieSelection(Movie theMovie, Movie src) THREEWORDINLINE(0x303C, 0x152, 0xAAAA); extern pascal void ClearMovieSelection(Movie theMovie) THREEWORDINLINE(0x303C, 0xE1, 0xAAAA); extern pascal OSErr PasteHandleIntoMovie(Handle h, OSType handleType, Movie theMovie, long flags, ComponentInstance userComp) THREEWORDINLINE(0x303C, 0xCB, 0xAAAA); extern pascal OSErr PutMovieIntoTypedHandle(Movie theMovie, Track targetTrack, OSType handleType, Handle publicMovie, TimeValue start, TimeValue dur, long flags, ComponentInstance userComp) THREEWORDINLINE(0x303C, 0x1CD, 0xAAAA); extern pascal Component IsScrapMovie(Track targetTrack) THREEWORDINLINE(0x303C, 0xCC, 0xAAAA); extern pascal OSErr CopyTrackSettings(Track srcTrack, Track dstTrack) THREEWORDINLINE(0x303C, 0x153, 0xAAAA); extern pascal OSErr CopyMovieSettings(Movie srcMovie, Movie dstMovie) THREEWORDINLINE(0x303C, 0x154, 0xAAAA); extern pascal OSErr AddEmptyTrackToMovie(Track srcTrack, Movie dstMovie, Handle dataRef, OSType dataRefType, Track *dstTrack) TWOWORDINLINE(0x7074, 0xAAAA); extern pascal MovieEditState NewMovieEditState(Movie theMovie) THREEWORDINLINE(0x303C, 0x104, 0xAAAA); extern pascal OSErr UseMovieEditState(Movie theMovie, MovieEditState toState) THREEWORDINLINE(0x303C, 0x105, 0xAAAA); extern pascal OSErr DisposeMovieEditState(MovieEditState state) THREEWORDINLINE(0x303C, 0x106, 0xAAAA); extern pascal TrackEditState NewTrackEditState(Track theTrack) THREEWORDINLINE(0x303C, 0x107, 0xAAAA); extern pascal OSErr UseTrackEditState(Track theTrack, TrackEditState state) THREEWORDINLINE(0x303C, 0x108, 0xAAAA); extern pascal OSErr DisposeTrackEditState(TrackEditState state) THREEWORDINLINE(0x303C, 0x109, 0xAAAA); extern pascal OSErr AddTrackReference(Track theTrack, Track refTrack, OSType refType, long *addedIndex) THREEWORDINLINE(0x303C, 0x1F0, 0xAAAA); extern pascal OSErr DeleteTrackReference(Track theTrack, OSType refType, long index) THREEWORDINLINE(0x303C, 0x1F1, 0xAAAA); extern pascal OSErr SetTrackReference(Track theTrack, Track refTrack, OSType refType, long index) THREEWORDINLINE(0x303C, 0x1F2, 0xAAAA); extern pascal Track GetTrackReference(Track theTrack, OSType refType, long index) THREEWORDINLINE(0x303C, 0x1F3, 0xAAAA); extern pascal OSType GetNextTrackReferenceType(Track theTrack, OSType refType) THREEWORDINLINE(0x303C, 0x1F4, 0xAAAA); extern pascal long GetTrackReferenceCount(Track theTrack, OSType refType) THREEWORDINLINE(0x303C, 0x1F5, 0xAAAA); extern pascal OSErr ConvertFileToMovieFile(const FSSpec *inputFile, const FSSpec *outputFile, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp, MovieProgressUPP proc, long refCon) THREEWORDINLINE(0x303C, 0x1CB, 0xAAAA); extern pascal OSErr ConvertMovieToFile(Movie theMovie, Track onlyTrack, FSSpec *outputFile, OSType fileType, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp) THREEWORDINLINE(0x303C, 0x1CC, 0xAAAA); extern pascal TimeValue TrackTimeToMediaTime(TimeValue value, Track theTrack) THREEWORDINLINE(0x303C, 0x96, 0xAAAA); extern pascal Fixed GetTrackEditRate(Track theTrack, TimeValue atTime) THREEWORDINLINE(0x303C, 0x123, 0xAAAA); extern pascal long GetMovieDataSize(Movie theMovie, TimeValue startTime, TimeValue duration) THREEWORDINLINE(0x303C, 0x98, 0xAAAA); extern pascal long GetTrackDataSize(Track theTrack, TimeValue startTime, TimeValue duration) THREEWORDINLINE(0x303C, 0x149, 0xAAAA); extern pascal long GetMediaDataSize(Media theMedia, TimeValue startTime, TimeValue duration) THREEWORDINLINE(0x303C, 0x99, 0xAAAA); extern pascal Boolean PtInMovie(Movie theMovie, Point pt) THREEWORDINLINE(0x303C, 0x9A, 0xAAAA); extern pascal Boolean PtInTrack(Track theTrack, Point pt) THREEWORDINLINE(0x303C, 0x9B, 0xAAAA); extern pascal void SetMovieLanguage(Movie theMovie, long language) THREEWORDINLINE(0x303C, 0x9C, 0xAAAA); extern pascal OSErr GetUserData(UserData theUserData, Handle data, OSType udType, long index) THREEWORDINLINE(0x303C, 0x9E, 0xAAAA); extern pascal OSErr AddUserData(UserData theUserData, Handle data, OSType udType) THREEWORDINLINE(0x303C, 0x9F, 0xAAAA); extern pascal OSErr RemoveUserData(UserData theUserData, OSType udType, long index) THREEWORDINLINE(0x303C, 0xA0, 0xAAAA); extern pascal short CountUserDataType(UserData theUserData, OSType udType) THREEWORDINLINE(0x303C, 0x14B, 0xAAAA); extern pascal long GetNextUserDataType(UserData theUserData, OSType udType) THREEWORDINLINE(0x303C, 0x1A5, 0xAAAA); extern pascal OSErr GetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index) THREEWORDINLINE(0x303C, 0x126, 0xAAAA); extern pascal OSErr SetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index) THREEWORDINLINE(0x303C, 0x12E, 0xAAAA); extern pascal OSErr AddUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag) THREEWORDINLINE(0x303C, 0x14C, 0xAAAA); extern pascal OSErr GetUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag) THREEWORDINLINE(0x303C, 0x14D, 0xAAAA); extern pascal OSErr RemoveUserDataText(UserData theUserData, OSType udType, long index, short itlRegionTag) THREEWORDINLINE(0x303C, 0x14E, 0xAAAA); extern pascal OSErr NewUserData(UserData *theUserData) THREEWORDINLINE(0x303C, 0x12F, 0xAAAA); extern pascal OSErr DisposeUserData(UserData theUserData) THREEWORDINLINE(0x303C, 0x130, 0xAAAA); extern pascal OSErr NewUserDataFromHandle(Handle h, UserData *theUserData) THREEWORDINLINE(0x303C, 0x131, 0xAAAA); extern pascal OSErr PutUserDataIntoHandle(UserData theUserData, Handle h) THREEWORDINLINE(0x303C, 0x132, 0xAAAA); extern pascal void GetMediaNextInterestingTime(Media theMedia, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration) THREEWORDINLINE(0x303C, 0x16D, 0xAAAA); extern pascal void GetTrackNextInterestingTime(Track theTrack, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration) THREEWORDINLINE(0x303C, 0xE2, 0xAAAA); extern pascal void GetMovieNextInterestingTime(Movie theMovie, short interestingTimeFlags, short numMediaTypes, const OSType *whichMediaTypes, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration) THREEWORDINLINE(0x303C, 0x10E, 0xAAAA); extern pascal OSErr CreateMovieFile(const FSSpec *fileSpec, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resRefNum, Movie *newmovie) THREEWORDINLINE(0x303C, 0x191, 0xAAAA); extern pascal OSErr OpenMovieFile(const FSSpec *fileSpec, short *resRefNum, char perms) THREEWORDINLINE(0x303C, 0x192, 0xAAAA); extern pascal OSErr CloseMovieFile(short resRefNum) THREEWORDINLINE(0x303C, 0xD5, 0xAAAA); extern pascal OSErr DeleteMovieFile(const FSSpec *fileSpec) THREEWORDINLINE(0x303C, 0x175, 0xAAAA); extern pascal OSErr NewMovieFromFile(Movie *theMovie, short resRefNum, short *resId, StringPtr resName, short newMovieFlags, Boolean *dataRefWasChanged) THREEWORDINLINE(0x303C, 0xF0, 0xAAAA); extern pascal OSErr NewMovieFromHandle(Movie *theMovie, Handle h, short newMovieFlags, Boolean *dataRefWasChanged) THREEWORDINLINE(0x303C, 0xF1, 0xAAAA); extern pascal OSErr NewMovieFromDataFork(Movie *theMovie, short fRefNum, long fileOffset, short newMovieFlags, Boolean *dataRefWasChanged) THREEWORDINLINE(0x303C, 0x1B3, 0xAAAA); extern pascal OSErr NewMovieFromUserProc(Movie *m, short flags, Boolean *dataRefWasChanged, GetMovieUPP getProc, void *refCon, Handle defaultDataRef, OSType dataRefType) THREEWORDINLINE(0x303C, 0x1EC, 0xAAAA); extern pascal OSErr AddMovieResource(Movie theMovie, short resRefNum, short *resId, const StringPtr resName) THREEWORDINLINE(0x303C, 0xD7, 0xAAAA); extern pascal OSErr UpdateMovieResource(Movie theMovie, short resRefNum, short resId, const StringPtr resName) THREEWORDINLINE(0x303C, 0xD8, 0xAAAA); extern pascal OSErr RemoveMovieResource(short resRefNum, short resId) THREEWORDINLINE(0x303C, 0x176, 0xAAAA); extern pascal Boolean HasMovieChanged(Movie theMovie) THREEWORDINLINE(0x303C, 0xD9, 0xAAAA); extern pascal void ClearMovieChanged(Movie theMovie) THREEWORDINLINE(0x303C, 0x113, 0xAAAA); extern pascal OSErr SetMovieDefaultDataRef(Movie theMovie, Handle dataRef, OSType dataRefType) THREEWORDINLINE(0x303C, 0x1C1, 0xAAAA); extern pascal OSErr GetMovieDefaultDataRef(Movie theMovie, Handle *dataRef, OSType *dataRefType) THREEWORDINLINE(0x303C, 0x1D2, 0xAAAA); extern pascal OSErr SetMovieColorTable(Movie theMovie, CTabHandle ctab) THREEWORDINLINE(0x303C, 0x205, 0xAAAA); extern pascal OSErr GetMovieColorTable(Movie theMovie, CTabHandle *ctab) THREEWORDINLINE(0x303C, 0x206, 0xAAAA); extern pascal void FlattenMovie(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resId, const StringPtr resName) THREEWORDINLINE(0x303C, 0x19B, 0xAAAA); extern pascal Movie FlattenMovieData(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags) THREEWORDINLINE(0x303C, 0x19C, 0xAAAA); extern pascal void SetMovieProgressProc(Movie theMovie, MovieProgressUPP p, long refcon) THREEWORDINLINE(0x303C, 0x19A, 0xAAAA); extern pascal HandlerError GetVideoMediaGraphicsMode(MediaHandler mh, long *graphicsMode, RGBColor *opColor) FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A); extern pascal HandlerError SetVideoMediaGraphicsMode(MediaHandler mh, long graphicsMode, const RGBColor *opColor) FIVEWORDINLINE(0x2F3C, 0x8, 0x102, 0x7000, 0xA82A); extern pascal HandlerError GetSoundMediaBalance(MediaHandler mh, short *balance) FIVEWORDINLINE(0x2F3C, 0x4, 0x101, 0x7000, 0xA82A); extern pascal HandlerError SetSoundMediaBalance(MediaHandler mh, short balance) FIVEWORDINLINE(0x2F3C, 0x2, 0x102, 0x7000, 0xA82A); enum { txtProcDefaultDisplay = 0, txtProcDontDisplay = 1, txtProcDoDisplay = 2 }; typedef pascal OSErr (*TextMediaProcPtr)(Handle theText, Movie theMovie, short *displayFlag, long refcon); enum { uppTextMediaProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Movie))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*))) | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr TextMediaUPP; #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon)) #define NewTextMediaProc(userRoutine) \ (TextMediaUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentISA()) #else typedef TextMediaProcPtr TextMediaUPP; #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon) \ (*(userRoutine))((theText), (theMovie), (displayFlag), (refcon)) #define NewTextMediaProc(userRoutine) \ (TextMediaUPP)(userRoutine) #endif extern pascal ComponentResult SetTextProc(MediaHandler mh, TextMediaUPP TextProc, long refcon) FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A); extern pascal ComponentResult AddTextSample(MediaHandler mh, Ptr text, unsigned long size, short fontNumber, short fontSize, Style textFace, RGBColor *textColor, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime) FIVEWORDINLINE(0x2F3C, 0x34, 0x102, 0x7000, 0xA82A); extern pascal ComponentResult AddTESample(MediaHandler mh, TEHandle hTE, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime) FIVEWORDINLINE(0x2F3C, 0x26, 0x103, 0x7000, 0xA82A); extern pascal ComponentResult AddHiliteSample(MediaHandler mh, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime) FIVEWORDINLINE(0x2F3C, 0x10, 0x104, 0x7000, 0xA82A); enum { findTextEdgeOK = 1 << 0, findTextCaseSensitive = 1 << 1, findTextReverseSearch = 1 << 2, findTextWrapAround = 1 << 3, findTextUseOffset = 1 << 4 }; extern pascal ComponentResult FindNextText(MediaHandler mh, Ptr text, long size, short findFlags, TimeValue startTime, TimeValue *foundTime, TimeValue *foundDuration, long *offset) FIVEWORDINLINE(0x2F3C, 0x1A, 0x105, 0x7000, 0xA82A); extern pascal ComponentResult HiliteTextSample(MediaHandler mh, TimeValue sampleTime, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor) FIVEWORDINLINE(0x2F3C, 0xC, 0x106, 0x7000, 0xA82A); #define dropShadowOffsetType 'drpo' #define dropShadowTranslucencyType 'drpt' extern pascal ComponentResult SetTextSampleData(MediaHandler mh, void *data, OSType dataType) FIVEWORDINLINE(0x2F3C, 0x8, 0x107, 0x7000, 0xA82A); extern pascal OSErr MovieSearchText(Movie theMovie, Ptr text, long size, long searchFlags, Track *searchTrack, TimeValue *searchTime, long *searchOffset) THREEWORDINLINE(0x303C, 0x207, 0xAAAA); extern pascal void GetPosterBox(Movie theMovie, Rect *boxRect) THREEWORDINLINE(0x303C, 0x16F, 0xAAAA); extern pascal void SetPosterBox(Movie theMovie, const Rect *boxRect) THREEWORDINLINE(0x303C, 0x170, 0xAAAA); extern pascal RgnHandle GetMovieSegmentDisplayBoundsRgn(Movie theMovie, TimeValue time, TimeValue duration) THREEWORDINLINE(0x303C, 0x16C, 0xAAAA); extern pascal RgnHandle GetTrackSegmentDisplayBoundsRgn(Track theTrack, TimeValue time, TimeValue duration) THREEWORDINLINE(0x303C, 0x16B, 0xAAAA); extern pascal void SetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP uncoverProc, MovieRgnCoverUPP coverProc, long refcon) THREEWORDINLINE(0x303C, 0x179, 0xAAAA); extern pascal OSErr GetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP *uncoverProc, MovieRgnCoverUPP *coverProc, long *refcon) THREEWORDINLINE(0x303C, 0x1DD, 0xAAAA); extern pascal ComponentResult GetTrackStatus(Track theTrack) THREEWORDINLINE(0x303C, 0x172, 0xAAAA); extern pascal ComponentResult GetMovieStatus(Movie theMovie, Track *firstProblemTrack) THREEWORDINLINE(0x303C, 0x173, 0xAAAA); extern pascal ComponentInstance NewMovieController(Movie theMovie, const Rect *movieRect, long someFlags) THREEWORDINLINE(0x303C, 0x18A, 0xAAAA); extern pascal void DisposeMovieController(ComponentInstance mc) THREEWORDINLINE(0x303C, 0x18B, 0xAAAA); extern pascal void ShowMovieInformation(Movie theMovie, ModalFilterUPP filterProc, long refCon) THREEWORDINLINE(0x303C, 0x209, 0xAAAA); extern pascal OSErr PutMovieOnScrap(Movie theMovie, long movieScrapFlags) THREEWORDINLINE(0x303C, 0x18C, 0xAAAA); extern pascal Movie NewMovieFromScrap(long newMovieFlags) THREEWORDINLINE(0x303C, 0x18D, 0xAAAA); extern pascal OSErr GetMediaDataRef(Media theMedia, short index, Handle *dataRef, OSType *dataRefType, long *dataRefAttributes) THREEWORDINLINE(0x303C, 0x197, 0xAAAA); extern pascal OSErr SetMediaDataRef(Media theMedia, short index, Handle dataRef, OSType dataRefType) THREEWORDINLINE(0x303C, 0x1C9, 0xAAAA); extern pascal OSErr SetMediaDataRefAttributes(Media theMedia, short index, long dataRefAttributes) THREEWORDINLINE(0x303C, 0x1CA, 0xAAAA); extern pascal OSErr AddMediaDataRef(Media theMedia, short *index, Handle dataRef, OSType dataRefType) THREEWORDINLINE(0x303C, 0x198, 0xAAAA); extern pascal OSErr GetMediaDataRefCount(Media theMedia, short *count) THREEWORDINLINE(0x303C, 0x199, 0xAAAA); extern pascal void SetMoviePlayHints(Movie theMovie, long flags, long flagsMask) THREEWORDINLINE(0x303C, 0x1A1, 0xAAAA); extern pascal void SetMediaPlayHints(Media theMedia, long flags, long flagsMask) THREEWORDINLINE(0x303C, 0x1A2, 0xAAAA); enum { preloadAlways = 1L << 0, preloadOnlyIfEnabled = 1L << 1 }; extern pascal void SetTrackLoadSettings(Track theTrack, TimeValue preloadTime, TimeValue preloadDuration, long preloadFlags, long defaultHints) THREEWORDINLINE(0x303C, 0x1E3, 0xAAAA); extern pascal void GetTrackLoadSettings(Track theTrack, TimeValue *preloadTime, TimeValue *preloadDuration, long *preloadFlags, long *defaultHints) THREEWORDINLINE(0x303C, 0x1E4, 0xAAAA); #ifdef __cplusplus } #endif enum { samplesAlreadyInMedia = -2059, movieTextNotFound = -2062 }; #define MovieControllerComponentType 'play' typedef ComponentInstance MovieController; enum { mcActionIdle = 1, mcActionDraw = 2, mcActionActivate = 3, mcActionDeactivate = 4, mcActionMouseDown = 5, mcActionKey = 6, mcActionPlay = 8, mcActionGoToTime = 12, mcActionSetVolume = 14, mcActionGetVolume = 15, mcActionStep = 18, mcActionSetLooping = 21, mcActionGetLooping = 22, mcActionSetLoopIsPalindrome = 23, mcActionGetLoopIsPalindrome = 24, mcActionSetGrowBoxBounds = 25, mcActionControllerSizeChanged = 26, mcActionSetSelectionBegin = 29, mcActionSetSelectionDuration = 30, mcActionSetKeysEnabled = 32, mcActionGetKeysEnabled = 33, mcActionSetPlaySelection = 34, mcActionGetPlaySelection = 35, mcActionSetUseBadge = 36, mcActionGetUseBadge = 37, mcActionSetFlags = 38, mcActionGetFlags = 39, mcActionSetPlayEveryFrame = 40, mcActionGetPlayEveryFrame = 41, mcActionGetPlayRate = 42, mcActionShowBalloon = 43, mcActionBadgeClick = 44, mcActionMovieClick = 45, mcActionSuspend = 46, mcActionResume = 47, mcActionSetControllerKeysEnabled = 48, mcActionGetTimeSliderRect = 49, mcActionMovieEdited = 50, mcActionGetDragEnabled = 51, mcActionSetDragEnabled = 52 }; typedef short mcAction; enum { mcFlagSuppressMovieFrame = 1 << 0, mcFlagSuppressStepButtons = 1 << 1, mcFlagSuppressSpeakerButton = 1 << 2, mcFlagsUseWindowPalette = 1 << 3, mcFlagsDontInvalidate = 1 << 4 }; enum { mcPositionDontInvalidate = 1 << 5 }; typedef unsigned long mcFlags; typedef pascal Boolean (*MCActionFilterProcPtr)(MovieController mc, short *action, void *params); enum { uppMCActionFilterProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short*))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MCActionFilterUPP; #define CallMCActionFilterProc(userRoutine, mc, action, params) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterProcInfo, (mc), (action), (params)) #define NewMCActionFilterProc(userRoutine) \ (MCActionFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentISA()) #else typedef MCActionFilterProcPtr MCActionFilterUPP; #define CallMCActionFilterProc(userRoutine, mc, action, params) \ (*(userRoutine))((mc), (action), (params)) #define NewMCActionFilterProc(userRoutine) \ (MCActionFilterUPP)(userRoutine) #endif typedef pascal Boolean (*MCActionFilterWithRefConProcPtr)(MovieController mc, short action, void *params, long refCon); enum { uppMCActionFilterWithRefConProcInfo = kPascalStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Boolean))) | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController))) | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short))) | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))) | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long))) }; #if USESROUTINEDESCRIPTORS typedef UniversalProcPtr MCActionFilterWithRefConUPP; #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon) \ CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon)) #define NewMCActionFilterWithRefConProc(userRoutine) \ (MCActionFilterWithRefConUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentISA()) #else typedef MCActionFilterWithRefConProcPtr MCActionFilterWithRefConUPP; #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon) \ (*(userRoutine))((mc), (action), (params), (refCon)) #define NewMCActionFilterWithRefConProc(userRoutine) \ (MCActionFilterWithRefConUPP)(userRoutine) #endif enum { mcInfoUndoAvailable = 1 << 0, mcInfoCutAvailable = 1 << 1, mcInfoCopyAvailable = 1 << 2, mcInfoPasteAvailable = 1 << 3, mcInfoClearAvailable = 1 << 4, mcInfoHasSound = 1 << 5, mcInfoIsPlaying = 1 << 6, mcInfoIsLooping = 1 << 7, mcInfoIsInPalindrome = 1 << 8, mcInfoEditingEnabled = 1 << 9 }; enum { mcMenuUndo = 1, mcMenuCut = 3, mcMenuCopy = 4, mcMenuPaste = 5, mcMenuClear = 6 }; #ifdef __cplusplus extern "C" { #endif extern pascal ComponentResult MCSetMovie(MovieController mc, Movie theMovie, WindowPtr movieWindow, Point where) FIVEWORDINLINE(0x2F3C, 0xC, 0x2, 0x7000, 0xA82A); extern pascal Movie MCGetIndMovie(MovieController mc, short index) FIVEWORDINLINE(0x2F3C, 0x2, 0x5, 0x7000, 0xA82A); #define MCGetMovie(mc) MCGetIndMovie(mc, 0) extern pascal ComponentResult MCRemoveMovie(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x6, 0x7000, 0xA82A); extern pascal ComponentResult MCIsPlayerEvent(MovieController mc, const EventRecord *e) FIVEWORDINLINE(0x2F3C, 0x4, 0x7, 0x7000, 0xA82A); extern pascal ComponentResult MCSetActionFilter(MovieController mc, MCActionFilterUPP blob) FIVEWORDINLINE(0x2F3C, 0x4, 0x8, 0x7000, 0xA82A); extern pascal ComponentResult MCDoAction(MovieController mc, short action, void *params) FIVEWORDINLINE(0x2F3C, 0x6, 0x9, 0x7000, 0xA82A); extern pascal ComponentResult MCSetControllerAttached(MovieController mc, Boolean attach) FIVEWORDINLINE(0x2F3C, 0x2, 0xA, 0x7000, 0xA82A); extern pascal ComponentResult MCIsControllerAttached(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0xB, 0x7000, 0xA82A); extern pascal ComponentResult MCSetControllerPort(MovieController mc, CGrafPtr gp) FIVEWORDINLINE(0x2F3C, 0x4, 0xC, 0x7000, 0xA82A); extern pascal CGrafPtr MCGetControllerPort(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0xD, 0x7000, 0xA82A); extern pascal ComponentResult MCSetVisible(MovieController mc, Boolean visible) FIVEWORDINLINE(0x2F3C, 0x2, 0xE, 0x7000, 0xA82A); extern pascal ComponentResult MCGetVisible(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0xF, 0x7000, 0xA82A); extern pascal ComponentResult MCGetControllerBoundsRect(MovieController mc, Rect *bounds) FIVEWORDINLINE(0x2F3C, 0x4, 0x10, 0x7000, 0xA82A); extern pascal ComponentResult MCSetControllerBoundsRect(MovieController mc, const Rect *bounds) FIVEWORDINLINE(0x2F3C, 0x4, 0x11, 0x7000, 0xA82A); extern pascal RgnHandle MCGetControllerBoundsRgn(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x12, 0x7000, 0xA82A); extern pascal RgnHandle MCGetWindowRgn(MovieController mc, WindowPtr w) FIVEWORDINLINE(0x2F3C, 0x4, 0x13, 0x7000, 0xA82A); extern pascal ComponentResult MCMovieChanged(MovieController mc, Movie m) FIVEWORDINLINE(0x2F3C, 0x4, 0x14, 0x7000, 0xA82A); extern pascal ComponentResult MCSetDuration(MovieController mc, TimeValue duration) FIVEWORDINLINE(0x2F3C, 0x4, 0x15, 0x7000, 0xA82A); extern pascal TimeValue MCGetCurrentTime(MovieController mc, TimeScale *scale) FIVEWORDINLINE(0x2F3C, 0x4, 0x16, 0x7000, 0xA82A); extern pascal ComponentResult MCNewAttachedController(MovieController mc, Movie theMovie, WindowPtr w, Point where) FIVEWORDINLINE(0x2F3C, 0xC, 0x17, 0x7000, 0xA82A); extern pascal ComponentResult MCDraw(MovieController mc, WindowPtr w) FIVEWORDINLINE(0x2F3C, 0x4, 0x18, 0x7000, 0xA82A); extern pascal ComponentResult MCActivate(MovieController mc, WindowPtr w, Boolean activate) FIVEWORDINLINE(0x2F3C, 0x6, 0x19, 0x7000, 0xA82A); extern pascal ComponentResult MCIdle(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x1A, 0x7000, 0xA82A); extern pascal ComponentResult MCKey(MovieController mc, char key, long modifiers) FIVEWORDINLINE(0x2F3C, 0x6, 0x1B, 0x7000, 0xA82A); extern pascal ComponentResult MCClick(MovieController mc, WindowPtr w, Point where, long when, long modifiers) FIVEWORDINLINE(0x2F3C, 0x10, 0x1C, 0x7000, 0xA82A); extern pascal ComponentResult MCEnableEditing(MovieController mc, Boolean enabled) FIVEWORDINLINE(0x2F3C, 0x2, 0x1D, 0x7000, 0xA82A); extern pascal long MCIsEditingEnabled(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x1E, 0x7000, 0xA82A); extern pascal Movie MCCopy(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x1F, 0x7000, 0xA82A); extern pascal Movie MCCut(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x20, 0x7000, 0xA82A); extern pascal ComponentResult MCPaste(MovieController mc, Movie srcMovie) FIVEWORDINLINE(0x2F3C, 0x4, 0x21, 0x7000, 0xA82A); extern pascal ComponentResult MCClear(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x22, 0x7000, 0xA82A); extern pascal ComponentResult MCUndo(MovieController mc) FIVEWORDINLINE(0x2F3C, 0, 0x23, 0x7000, 0xA82A); extern pascal ComponentResult MCPositionController(MovieController mc, const Rect *movieRect, const Rect *controllerRect, long someFlags) FIVEWORDINLINE(0x2F3C, 0xC, 0x24, 0x7000, 0xA82A); extern pascal ComponentResult MCGetControllerInfo(MovieController mc, long *someFlags) FIVEWORDINLINE(0x2F3C, 0x4, 0x25, 0x7000, 0xA82A); extern pascal ComponentResult MCSetClip(MovieController mc, RgnHandle theClip, RgnHandle movieClip) FIVEWORDINLINE(0x2F3C, 0x8, 0x28, 0x7000, 0xA82A); extern pascal ComponentResult MCGetClip(MovieController mc, RgnHandle *theClip, RgnHandle *movieClip) FIVEWORDINLINE(0x2F3C, 0x8, 0x29, 0x7000, 0xA82A); extern pascal ComponentResult MCDrawBadge(MovieController mc, RgnHandle movieRgn, RgnHandle *badgeRgn) FIVEWORDINLINE(0x2F3C, 0x8, 0x2A, 0x7000, 0xA82A); extern pascal ComponentResult MCSetUpEditMenu(MovieController mc, long modifiers, MenuHandle mh) FIVEWORDINLINE(0x2F3C, 0x8, 0x2B, 0x7000, 0xA82A); extern pascal ComponentResult MCGetMenuString(MovieController mc, long modifiers, short item, Str255 aString) FIVEWORDINLINE(0x2F3C, 0xA, 0x2C, 0x7000, 0xA82A); extern pascal ComponentResult MCSetActionFilterWithRefCon(MovieController mc, MCActionFilterWithRefConUPP blob, long refCon) FIVEWORDINLINE(0x2F3C, 0x8, 0x2D, 0x7000, 0xA82A); #ifdef __cplusplus } #endif enum { kMCSetMovieSelect = 0x2, kMCGetIndMovieSelect = 0x5, kMCRemoveMovieSelect = 0x6, kMCIsPlayerEventSelect = 0x7, kMCSetActionFilterSelect = 0x8, kMCDoActionSelect = 0x9, kMCSetControllerAttachedSelect = 0xA, kMCIsControllerAttachedSelect = 0xB, kMCSetControllerPortSelect = 0xC, kMCGetControllerPortSelect = 0xD, kMCSetVisibleSelect = 0xE, kMCGetVisibleSelect = 0xF, kMCGetControllerBoundsRectSelect = 0x10, kMCSetControllerBoundsRectSelect = 0x11, kMCGetControllerBoundsRgnSelect = 0x12, kMCGetWindowRgnSelect = 0x13, kMCMovieChangedSelect = 0x14, kMCSetDurationSelect = 0x15, kMCGetCurrentTimeSelect = 0x16, kMCNewAttachedControllerSelect = 0x17, kMCDrawSelect = 0x18, kMCActivateSelect = 0x19, kMCIdleSelect = 0x1A, kMCKeySelect = 0x1B, kMCClickSelect = 0x1C, kMCEnableEditingSelect = 0x1D, kMCIsEditingEnabledSelect = 0x1E, kMCCopySelect = 0x1F, kMCCutSelect = 0x20, kMCPasteSelect = 0x21, kMCClearSelect = 0x22, kMCUndoSelect = 0x23, kMCPositionControllerSelect = 0x24, kMCGetControllerInfoSelect = 0x25, kMCSetClipSelect = 0x28, kMCGetClipSelect = 0x29, kMCDrawBadgeSelect = 0x2A, kMCSetUpEditMenuSelect = 0x2B, kMCGetMenuStringSelect = 0x2C, kMCSetActionFilterWithRefConSelect = 0x2D }; #ifdef __cplusplus extern "C" { #endif extern pascal TimeBase NewTimeBase(void) THREEWORDINLINE(0x303C, 0xA5, 0xAAAA); extern pascal void DisposeTimeBase(TimeBase tb) THREEWORDINLINE(0x303C, 0xB6, 0xAAAA); extern pascal TimeValue GetTimeBaseTime(TimeBase tb, TimeScale s, TimeRecord *tr) THREEWORDINLINE(0x303C, 0xA6, 0xAAAA); extern pascal void SetTimeBaseTime(TimeBase tb, const TimeRecord *tr) THREEWORDINLINE(0x303C, 0xA7, 0xAAAA); extern pascal void SetTimeBaseValue(TimeBase tb, TimeValue t, TimeScale s) THREEWORDINLINE(0x303C, 0xA8, 0xAAAA); extern pascal Fixed GetTimeBaseRate(TimeBase tb) THREEWORDINLINE(0x303C, 0xA9, 0xAAAA); extern pascal void SetTimeBaseRate(TimeBase tb, Fixed r) THREEWORDINLINE(0x303C, 0xAA, 0xAAAA); extern pascal TimeValue GetTimeBaseStartTime(TimeBase tb, TimeScale s, TimeRecord *tr) THREEWORDINLINE(0x303C, 0xAB, 0xAAAA); extern pascal void SetTimeBaseStartTime(TimeBase tb, const TimeRecord *tr) THREEWORDINLINE(0x303C, 0xAC, 0xAAAA); extern pascal TimeValue GetTimeBaseStopTime(TimeBase tb, TimeScale s, TimeRecord *tr) THREEWORDINLINE(0x303C, 0xAD, 0xAAAA); extern pascal void SetTimeBaseStopTime(TimeBase tb, const TimeRecord *tr) THREEWORDINLINE(0x303C, 0xAE, 0xAAAA); extern pascal long GetTimeBaseFlags(TimeBase tb) THREEWORDINLINE(0x303C, 0xB1, 0xAAAA); extern pascal void SetTimeBaseFlags(TimeBase tb, long timeBaseFlags) THREEWORDINLINE(0x303C, 0xB2, 0xAAAA); extern pascal void SetTimeBaseMasterTimeBase(TimeBase slave, TimeBase master, const TimeRecord *slaveZero) THREEWORDINLINE(0x303C, 0xB4, 0xAAAA); extern pascal TimeBase GetTimeBaseMasterTimeBase(TimeBase tb) THREEWORDINLINE(0x303C, 0xAF, 0xAAAA); extern pascal void SetTimeBaseMasterClock(TimeBase slave, Component clockMeister, const TimeRecord *slaveZero) THREEWORDINLINE(0x303C, 0xB3, 0xAAAA); extern pascal ComponentInstance GetTimeBaseMasterClock(TimeBase tb) THREEWORDINLINE(0x303C, 0xB0, 0xAAAA); extern pascal void ConvertTime(TimeRecord *inout, TimeBase newBase) THREEWORDINLINE(0x303C, 0xB5, 0xAAAA); extern pascal void ConvertTimeScale(TimeRecord *inout, TimeScale newScale) THREEWORDINLINE(0x303C, 0xB7, 0xAAAA); extern pascal void AddTime(TimeRecord *dst, const TimeRecord *src) THREEWORDINLINE(0x303C, 0x10C, 0xAAAA); extern pascal void SubtractTime(TimeRecord *dst, const TimeRecord *src) THREEWORDINLINE(0x303C, 0x10D, 0xAAAA); extern pascal long GetTimeBaseStatus(TimeBase tb, TimeRecord *unpinnedTime) THREEWORDINLINE(0x303C, 0x10B, 0xAAAA); extern pascal void SetTimeBaseZero(TimeBase tb, TimeRecord *zero) THREEWORDINLINE(0x303C, 0x128, 0xAAAA); extern pascal Fixed GetTimeBaseEffectiveRate(TimeBase tb) THREEWORDINLINE(0x303C, 0x124, 0xAAAA); extern pascal QTCallBack NewCallBack(TimeBase tb, short cbType) THREEWORDINLINE(0x303C, 0xEB, 0xAAAA); extern pascal void DisposeCallBack(QTCallBack cb) THREEWORDINLINE(0x303C, 0xEC, 0xAAAA); extern pascal short GetCallBackType(QTCallBack cb) THREEWORDINLINE(0x303C, 0xED, 0xAAAA); extern pascal TimeBase GetCallBackTimeBase(QTCallBack cb) THREEWORDINLINE(0x303C, 0xEE, 0xAAAA); extern pascal OSErr CallMeWhen(QTCallBack cb, QTCallBackUPP callBackProc, long refCon, long param1, long param2, long param3) THREEWORDINLINE(0x303C, 0xB8, 0xAAAA); extern pascal void CancelCallBack(QTCallBack cb) THREEWORDINLINE(0x303C, 0xB9, 0xAAAA); extern pascal OSErr AddCallBackToTimeBase(QTCallBack cb) THREEWORDINLINE(0x303C, 0x129, 0xAAAA); extern pascal OSErr RemoveCallBackFromTimeBase(QTCallBack cb) THREEWORDINLINE(0x303C, 0x12A, 0xAAAA); extern pascal QTCallBack GetFirstCallBack(TimeBase tb) THREEWORDINLINE(0x303C, 0x12B, 0xAAAA); extern pascal QTCallBack GetNextCallBack(QTCallBack cb) THREEWORDINLINE(0x303C, 0x12C, 0xAAAA); extern pascal void ExecuteCallBack(QTCallBack cb) THREEWORDINLINE(0x303C, 0x12D, 0xAAAA); extern pascal OSErr QueueSyncTask(QTSyncTaskPtr task) THREEWORDINLINE(0x303C, 0x203, 0xAAAA); extern pascal OSErr DequeueSyncTask(QTSyncTaskPtr qElem) THREEWORDINLINE(0x303C, 0x204, 0xAAAA); #ifdef __cplusplus } #endif #if defined(powerc) || defined (__powerc) #pragma options align=mac68k #endif struct MusicDescription { long size; long type; long resvd1; short resvd2; short dataRefIndex; long musicFlags; unsigned long headerData[1]; }; #if defined(powerc) || defined(__powerc) #pragma options align=reset #endif typedef struct MusicDescription MusicDescription; typedef MusicDescription *MusicDescriptionPtr; typedef MusicDescriptionPtr *MusicDescriptionHandle; #endif